File: C:/Ruby27-x64/share/doc/ruby/html/Bundler/Source/Git.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>class Bundler::Source::Git - RDoc Documentation</title>
<script type="text/javascript">
var rdoc_rel_prefix = "../../";
var index_rel_prefix = "../../";
</script>
<script src="../../js/navigation.js" defer></script>
<script src="../../js/search.js" defer></script>
<script src="../../js/search_index.js" defer></script>
<script src="../../js/searcher.js" defer></script>
<script src="../../js/darkfish.js" defer></script>
<link href="../../css/fonts.css" rel="stylesheet">
<link href="../../css/rdoc.css" rel="stylesheet">
<body id="top" role="document" class="class">
<nav role="navigation">
<div id="project-navigation">
<div id="home-section" role="region" title="Quick navigation" class="nav-section">
<h2>
<a href="../../index.html" rel="home">Home</a>
</h2>
<div id="table-of-contents-navigation">
<a href="../../table_of_contents.html#pages">Pages</a>
<a href="../../table_of_contents.html#classes">Classes</a>
<a href="../../table_of_contents.html#methods">Methods</a>
</div>
</div>
<div id="search-section" role="search" class="project-section initially-hidden">
<form action="#" method="get" accept-charset="utf-8">
<div id="search-field-wrapper">
<input id="search-field" role="combobox" aria-label="Search"
aria-autocomplete="list" aria-controls="search-results"
type="text" name="search" placeholder="Search" spellcheck="false"
title="Type to search, Up and Down to navigate, Enter to load">
</div>
<ul id="search-results" aria-label="Search Results"
aria-busy="false" aria-expanded="false"
aria-atomic="false" class="initially-hidden"></ul>
</form>
</div>
</div>
<div id="class-metadata">
<div id="parent-class-section" class="nav-section">
<h3>Parent</h3>
<p class="link">Path
</div>
<!-- Method Quickref -->
<div id="method-list-section" class="nav-section">
<h3>Methods</h3>
<ul class="link-list" role="directory">
<li ><a href="#method-c-from_lock">::from_lock</a>
<li ><a href="#method-c-new">::new</a>
<li ><a href="#method-i-3D-3D">#==</a>
<li ><a href="#method-i-allow_git_ops-3F">#allow_git_ops?</a>
<li ><a href="#method-i-app_cache_dirname">#app_cache_dirname</a>
<li ><a href="#method-i-base_name">#base_name</a>
<li ><a href="#method-i-cache">#cache</a>
<li ><a href="#method-i-cache_path">#cache_path</a>
<li ><a href="#method-i-cached-3F">#cached?</a>
<li ><a href="#method-i-cached_revision">#cached_revision</a>
<li ><a href="#method-i-cached_revision_checked_out-3F">#cached_revision_checked_out?</a>
<li ><a href="#method-i-eql-3F">#eql?</a>
<li ><a href="#method-i-extension_cache_slug">#extension_cache_slug</a>
<li ><a href="#method-i-extension_dir_name">#extension_dir_name</a>
<li ><a href="#method-i-fetch">#fetch</a>
<li ><a href="#method-i-git_proxy">#git_proxy</a>
<li ><a href="#method-i-git_scope">#git_scope</a>
<li class="calls-super" ><a href="#method-i-has_app_cache-3F">#has_app_cache?</a>
<li ><a href="#method-i-hash">#hash</a>
<li ><a href="#method-i-install">#install</a>
<li ><a href="#method-i-install_path">#install_path</a>
<li ><a href="#method-i-load_gemspec">#load_gemspec</a>
<li class="calls-super" ><a href="#method-i-load_spec_files">#load_spec_files</a>
<li ><a href="#method-i-local-3F">#local?</a>
<li ><a href="#method-i-local_override-21">#local_override!</a>
<li ><a href="#method-i-name">#name</a>
<li ><a href="#method-i-override_for">#override_for</a>
<li ><a href="#method-i-path">#path</a>
<li ><a href="#method-i-requires_checkout-3F">#requires_checkout?</a>
<li ><a href="#method-i-revision">#revision</a>
<li ><a href="#method-i-serialize_gemspecs_in">#serialize_gemspecs_in</a>
<li ><a href="#method-i-set_local-21">#set_local!</a>
<li ><a href="#method-i-shortref_for_display">#shortref_for_display</a>
<li ><a href="#method-i-shortref_for_path">#shortref_for_path</a>
<li ><a href="#method-i-specs">#specs</a>
<li ><a href="#method-i-to_lock">#to_lock</a>
<li ><a href="#method-i-to_s">#to_s</a>
<li ><a href="#method-i-unlock-21">#unlock!</a>
<li ><a href="#method-i-uri_hash">#uri_hash</a>
<li ><a href="#method-i-validate_spec">#validate_spec</a>
</ul>
</div>
</div>
</nav>
<main role="main" aria-labelledby="class-Bundler::Source::Git">
<h1 id="class-Bundler::Source::Git" class="class">
class Bundler::Source::Git
</h1>
<section class="description">
</section>
<section id="5Buntitled-5D" class="documentation-section">
<section class="attribute-method-details" class="method-section">
<header>
<h3>Attributes</h3>
</header>
<div id="attribute-i-branch" class="method-detail">
<div class="method-heading attribute-method-heading">
<span class="method-name">branch</span><span
class="attribute-access-type">[R]</span>
</div>
<div class="method-description">
</div>
</div>
<div id="attribute-i-glob" class="method-detail">
<div class="method-heading attribute-method-heading">
<span class="method-name">glob</span><span
class="attribute-access-type">[R]</span>
</div>
<div class="method-description">
</div>
</div>
<div id="attribute-i-options" class="method-detail">
<div class="method-heading attribute-method-heading">
<span class="method-name">options</span><span
class="attribute-access-type">[R]</span>
</div>
<div class="method-description">
</div>
</div>
<div id="attribute-i-ref" class="method-detail">
<div class="method-heading attribute-method-heading">
<span class="method-name">ref</span><span
class="attribute-access-type">[R]</span>
</div>
<div class="method-description">
</div>
</div>
<div id="attribute-i-submodules" class="method-detail">
<div class="method-heading attribute-method-heading">
<span class="method-name">submodules</span><span
class="attribute-access-type">[R]</span>
</div>
<div class="method-description">
</div>
</div>
<div id="attribute-i-uri" class="method-detail">
<div class="method-heading attribute-method-heading">
<span class="method-name">uri</span><span
class="attribute-access-type">[R]</span>
</div>
<div class="method-description">
</div>
</div>
</section>
<section id="public-class-5Buntitled-5D-method-details" class="method-section">
<header>
<h3>Public Class Methods</h3>
</header>
<div id="method-c-from_lock" class="method-detail ">
<div class="method-heading">
<span class="method-name">from_lock</span><span
class="method-args">(options)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="from_lock-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 34</span>
<span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier ruby-title">from_lock</span>(<span class="ruby-identifier">options</span>)
<span class="ruby-identifier">new</span>(<span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-string">"uri"</span> <span class="ruby-operator">=></span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-string">"remote"</span>)))
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-c-new" class="method-detail ">
<div class="method-heading">
<span class="method-name">new</span><span
class="method-args">(options)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="new-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 12</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">initialize</span>(<span class="ruby-identifier">options</span>)
<span class="ruby-ivar">@options</span> = <span class="ruby-identifier">options</span>
<span class="ruby-ivar">@glob</span> = <span class="ruby-identifier">options</span>[<span class="ruby-string">"glob"</span>] <span class="ruby-operator">||</span> <span class="ruby-constant">DEFAULT_GLOB</span>
<span class="ruby-ivar">@allow_cached</span> = <span class="ruby-keyword">false</span>
<span class="ruby-ivar">@allow_remote</span> = <span class="ruby-keyword">false</span>
<span class="ruby-comment"># Stringify options that could be set as symbols</span>
<span class="ruby-node">%w[ref branch tag revision]</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">k</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">k</span>].<span class="ruby-identifier">to_s</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">k</span>] }
<span class="ruby-ivar">@uri</span> = <span class="ruby-identifier">options</span>[<span class="ruby-string">"uri"</span>] <span class="ruby-operator">||</span> <span class="ruby-string">""</span>
<span class="ruby-ivar">@safe_uri</span> = <span class="ruby-constant">URICredentialsFilter</span>.<span class="ruby-identifier">credential_filtered_uri</span>(<span class="ruby-ivar">@uri</span>)
<span class="ruby-ivar">@branch</span> = <span class="ruby-identifier">options</span>[<span class="ruby-string">"branch"</span>]
<span class="ruby-ivar">@ref</span> = <span class="ruby-identifier">options</span>[<span class="ruby-string">"ref"</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">options</span>[<span class="ruby-string">"branch"</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">options</span>[<span class="ruby-string">"tag"</span>] <span class="ruby-operator">||</span> <span class="ruby-string">"master"</span>
<span class="ruby-ivar">@submodules</span> = <span class="ruby-identifier">options</span>[<span class="ruby-string">"submodules"</span>]
<span class="ruby-ivar">@name</span> = <span class="ruby-identifier">options</span>[<span class="ruby-string">"name"</span>]
<span class="ruby-ivar">@version</span> = <span class="ruby-identifier">options</span>[<span class="ruby-string">"version"</span>].<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-string">"-"</span>, <span class="ruby-string">".pre."</span>)
<span class="ruby-ivar">@copied</span> = <span class="ruby-keyword">false</span>
<span class="ruby-ivar">@local</span> = <span class="ruby-keyword">false</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
</section>
<section id="public-instance-5Buntitled-5D-method-details" class="method-section">
<header>
<h3>Public Instance Methods</h3>
</header>
<div id="method-i-3D-3D" class="method-detail method-alias">
<div class="method-heading">
<span class="method-name">==</span><span
class="method-args">(other)</span>
</div>
<div class="method-description">
</div>
<div class="aliases">
Alias for: <a href="Git.html#method-i-eql-3F">eql?</a>
</div>
</div>
<div id="method-i-allow_git_ops-3F" class="method-detail ">
<div class="method-heading">
<span class="method-name">allow_git_ops?</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="allow_git_ops-3F-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 229</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">allow_git_ops?</span>
<span class="ruby-ivar">@allow_remote</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@allow_cached</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-app_cache_dirname" class="method-detail ">
<div class="method-heading">
<span class="method-name">app_cache_dirname</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="app_cache_dirname-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 221</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">app_cache_dirname</span>
<span class="ruby-node">"#{base_name}-#{shortref_for_path(cached_revision || revision)}"</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-cache" class="method-detail ">
<div class="method-heading">
<span class="method-name">cache</span><span
class="method-args">(spec, custom_path = nil)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="cache-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 189</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">cache</span>(<span class="ruby-identifier">spec</span>, <span class="ruby-identifier">custom_path</span> = <span class="ruby-keyword">nil</span>)
<span class="ruby-identifier">app_cache_path</span> = <span class="ruby-identifier">app_cache_path</span>(<span class="ruby-identifier">custom_path</span>)
<span class="ruby-keyword">return</span> <span class="ruby-keyword">unless</span> <span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">feature_flag</span>.<span class="ruby-identifier">cache_all?</span>
<span class="ruby-keyword">return</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">path</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">app_cache_path</span>
<span class="ruby-identifier">cached!</span>
<span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">rm_rf</span>(<span class="ruby-identifier">app_cache_path</span>)
<span class="ruby-identifier">git_proxy</span>.<span class="ruby-identifier">checkout</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">requires_checkout?</span>
<span class="ruby-identifier">git_proxy</span>.<span class="ruby-identifier">copy_to</span>(<span class="ruby-identifier">app_cache_path</span>, <span class="ruby-ivar">@submodules</span>)
<span class="ruby-identifier">serialize_gemspecs_in</span>(<span class="ruby-identifier">app_cache_path</span>)
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-cache_path" class="method-detail ">
<div class="method-heading">
<span class="method-name">cache_path</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<p>This is the path which is going to contain a cache of the git repository. When using the same git repository across different projects, this cache will be shared. When using local git repos, this is set to the local repo.</p>
<div class="method-source-code" id="cache_path-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 211</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">cache_path</span>
<span class="ruby-ivar">@cache_path</span> <span class="ruby-operator">||=</span> <span class="ruby-keyword">begin</span>
<span class="ruby-keyword">if</span> <span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">requires_sudo?</span> <span class="ruby-operator">||</span> <span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">feature_flag</span>.<span class="ruby-identifier">global_gem_cache?</span>
<span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">user_cache</span>
<span class="ruby-keyword">else</span>
<span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">bundle_path</span>.<span class="ruby-identifier">join</span>(<span class="ruby-string">"cache"</span>, <span class="ruby-string">"bundler"</span>)
<span class="ruby-keyword">end</span>.<span class="ruby-identifier">join</span>(<span class="ruby-string">"git"</span>, <span class="ruby-identifier">git_scope</span>)
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-eql-3F" class="method-detail ">
<div class="method-heading">
<span class="method-name">eql?</span><span
class="method-args">(other)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="eql-3F-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 53</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">eql?</span>(<span class="ruby-identifier">other</span>)
<span class="ruby-identifier">other</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Git</span>) <span class="ruby-operator">&&</span> <span class="ruby-identifier">uri</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">uri</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">ref</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">ref</span> <span class="ruby-operator">&&</span>
<span class="ruby-identifier">branch</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">branch</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">name</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">&&</span>
<span class="ruby-identifier">version</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">version</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">glob</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">glob</span> <span class="ruby-operator">&&</span>
<span class="ruby-identifier">submodules</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">submodules</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
<div class="aliases">
Also aliased as: <a href="Git.html#method-i-3D-3D">==</a>
</div>
</div>
<div id="method-i-extension_dir_name" class="method-detail ">
<div class="method-heading">
<span class="method-name">extension_dir_name</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="extension_dir_name-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 107</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">extension_dir_name</span>
<span class="ruby-node">"#{base_name}-#{shortref_for_path(revision)}"</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-hash" class="method-detail ">
<div class="method-heading">
<span class="method-name">hash</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="hash-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 49</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">hash</span>
[<span class="ruby-keyword">self</span>.<span class="ruby-identifier">class</span>, <span class="ruby-identifier">uri</span>, <span class="ruby-identifier">ref</span>, <span class="ruby-identifier">branch</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">version</span>, <span class="ruby-identifier">glob</span>, <span class="ruby-identifier">submodules</span>].<span class="ruby-identifier">hash</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-install" class="method-detail ">
<div class="method-heading">
<span class="method-name">install</span><span
class="method-args">(spec, options = {})</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="install-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 171</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">install</span>(<span class="ruby-identifier">spec</span>, <span class="ruby-identifier">options</span> = {})
<span class="ruby-identifier">force</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:force</span>]
<span class="ruby-identifier">print_using_message</span> <span class="ruby-node">"Using #{version_message(spec)} from #{self}"</span>
<span class="ruby-keyword">if</span> (<span class="ruby-identifier">requires_checkout?</span> <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@copied</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">force</span>
<span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">ui</span>.<span class="ruby-identifier">debug</span> <span class="ruby-node">" * Checking out revision: #{ref}"</span>
<span class="ruby-identifier">git_proxy</span>.<span class="ruby-identifier">copy_to</span>(<span class="ruby-identifier">install_path</span>, <span class="ruby-identifier">submodules</span>)
<span class="ruby-identifier">serialize_gemspecs_in</span>(<span class="ruby-identifier">install_path</span>)
<span class="ruby-ivar">@copied</span> = <span class="ruby-keyword">true</span>
<span class="ruby-keyword">end</span>
<span class="ruby-identifier">generate_bin_options</span> = { <span class="ruby-value">:disable_extensions</span> <span class="ruby-operator">=></span> <span class="ruby-operator">!</span><span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">rubygems</span>.<span class="ruby-identifier">spec_missing_extensions?</span>(<span class="ruby-identifier">spec</span>), <span class="ruby-value">:build_args</span> <span class="ruby-operator">=></span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:build_args</span>] }
<span class="ruby-identifier">generate_bin</span>(<span class="ruby-identifier">spec</span>, <span class="ruby-identifier">generate_bin_options</span>)
<span class="ruby-identifier">requires_checkout?</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">spec</span>.<span class="ruby-identifier">post_install_message</span> <span class="ruby-operator">:</span> <span class="ruby-keyword">nil</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-install_path" class="method-detail ">
<div class="method-heading">
<span class="method-name">install_path</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<p>This is the path which is going to contain a specific checkout of the git repository. When using local git repos, this is set to the local repo.</p>
<div class="method-source-code" id="install_path-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 91</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">install_path</span>
<span class="ruby-ivar">@install_path</span> <span class="ruby-operator">||=</span> <span class="ruby-keyword">begin</span>
<span class="ruby-identifier">git_scope</span> = <span class="ruby-node">"#{base_name}-#{shortref_for_path(revision)}"</span>
<span class="ruby-identifier">path</span> = <span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">install_path</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">git_scope</span>)
<span class="ruby-keyword">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">path</span>.<span class="ruby-identifier">exist?</span> <span class="ruby-operator">&&</span> <span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">requires_sudo?</span>
<span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">user_bundle_path</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">ruby_scope</span>).<span class="ruby-identifier">join</span>(<span class="ruby-identifier">git_scope</span>)
<span class="ruby-keyword">else</span>
<span class="ruby-identifier">path</span>
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
<div class="aliases">
Also aliased as: <a href="Git.html#method-i-path">path</a>
</div>
</div>
<div id="method-i-load_spec_files" class="method-detail ">
<div class="method-heading">
<span class="method-name">load_spec_files</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-calls-super">
Calls superclass method
</div>
<div class="method-source-code" id="load_spec_files-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 200</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">load_spec_files</span>
<span class="ruby-keyword">super</span>
<span class="ruby-keyword">rescue</span> <span class="ruby-constant">PathError</span> <span class="ruby-operator">=></span> <span class="ruby-identifier">e</span>
<span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">ui</span>.<span class="ruby-identifier">trace</span> <span class="ruby-identifier">e</span>
<span class="ruby-identifier">raise</span> <span class="ruby-constant">GitError</span>, <span class="ruby-node">"#{self} is not yet checked out. Run `bundle install` first."</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-local_override-21" class="method-detail ">
<div class="method-heading">
<span class="method-name">local_override!</span><span
class="method-args">(path)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="local_override-21-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 118</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">local_override!</span>(<span class="ruby-identifier">path</span>)
<span class="ruby-keyword">return</span> <span class="ruby-keyword">false</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">local?</span>
<span class="ruby-identifier">original_path</span> = <span class="ruby-identifier">path</span>
<span class="ruby-identifier">path</span> = <span class="ruby-constant">Pathname</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">path</span>)
<span class="ruby-identifier">path</span> = <span class="ruby-identifier">path</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">root</span>) <span class="ruby-keyword">unless</span> <span class="ruby-identifier">path</span>.<span class="ruby-identifier">relative?</span>
<span class="ruby-keyword">unless</span> <span class="ruby-identifier">options</span>[<span class="ruby-string">"branch"</span>] <span class="ruby-operator">||</span> <span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">settings</span>[<span class="ruby-value">:disable_local_branch_check</span>]
<span class="ruby-identifier">raise</span> <span class="ruby-constant">GitError</span>, <span class="ruby-node">"Cannot use local override for #{name} at #{path} because "</span> \
<span class="ruby-string">":branch is not specified in Gemfile. Specify a branch or run "</span> \
<span class="ruby-node">"`bundle config unset local.#{override_for(original_path)}` to remove the local override"</span>
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">unless</span> <span class="ruby-identifier">path</span>.<span class="ruby-identifier">exist?</span>
<span class="ruby-identifier">raise</span> <span class="ruby-constant">GitError</span>, <span class="ruby-node">"Cannot use local override for #{name} because #{path} "</span> \
<span class="ruby-node">"does not exist. Run `bundle config unset local.#{override_for(original_path)}` to remove the local override"</span>
<span class="ruby-keyword">end</span>
<span class="ruby-identifier">set_local!</span>(<span class="ruby-identifier">path</span>)
<span class="ruby-comment"># Create a new git proxy without the cached revision</span>
<span class="ruby-comment"># so the Gemfile.lock always picks up the new revision.</span>
<span class="ruby-ivar">@git_proxy</span> = <span class="ruby-constant">GitProxy</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">path</span>, <span class="ruby-identifier">uri</span>, <span class="ruby-identifier">ref</span>)
<span class="ruby-keyword">if</span> <span class="ruby-identifier">git_proxy</span>.<span class="ruby-identifier">branch</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">options</span>[<span class="ruby-string">"branch"</span>] <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span><span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">settings</span>[<span class="ruby-value">:disable_local_branch_check</span>]
<span class="ruby-identifier">raise</span> <span class="ruby-constant">GitError</span>, <span class="ruby-node">"Local override for #{name} at #{path} is using branch "</span> \
<span class="ruby-node">"#{git_proxy.branch} but Gemfile specifies #{options["branch"]}"</span>
<span class="ruby-keyword">end</span>
<span class="ruby-identifier">changed</span> = <span class="ruby-identifier">cached_revision</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">cached_revision</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">git_proxy</span>.<span class="ruby-identifier">revision</span>
<span class="ruby-keyword">if</span> <span class="ruby-identifier">changed</span> <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@unlocked</span> <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span><span class="ruby-identifier">git_proxy</span>.<span class="ruby-identifier">contains?</span>(<span class="ruby-identifier">cached_revision</span>)
<span class="ruby-identifier">raise</span> <span class="ruby-constant">GitError</span>, <span class="ruby-node">"The Gemfile lock is pointing to revision #{shortref_for_display(cached_revision)} "</span> \
<span class="ruby-node">"but the current branch in your local override for #{name} does not contain such commit. "</span> \
<span class="ruby-string">"Please make sure your branch is up to date."</span>
<span class="ruby-keyword">end</span>
<span class="ruby-identifier">changed</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-name" class="method-detail ">
<div class="method-heading">
<span class="method-name">name</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="name-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 84</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">name</span>
<span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-ivar">@uri</span>, <span class="ruby-string">".git"</span>)
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-path" class="method-detail method-alias">
<div class="method-heading">
<span class="method-name">path</span><span
class="method-args">()</span>
</div>
<div class="method-description">
</div>
<div class="aliases">
Alias for: <a href="Git.html#method-i-install_path">install_path</a>
</div>
</div>
<div id="method-i-revision" class="method-detail ">
<div class="method-heading">
<span class="method-name">revision</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="revision-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 225</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">revision</span>
<span class="ruby-identifier">git_proxy</span>.<span class="ruby-identifier">revision</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-specs" class="method-detail ">
<div class="method-heading">
<span class="method-name">specs</span><span
class="method-args">(*)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="specs-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 158</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">specs</span>(<span class="ruby-operator">*</span>)
<span class="ruby-identifier">set_local!</span>(<span class="ruby-identifier">app_cache_path</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">has_app_cache?</span> <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span><span class="ruby-identifier">local?</span>
<span class="ruby-keyword">if</span> <span class="ruby-identifier">requires_checkout?</span> <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@copied</span>
<span class="ruby-identifier">fetch</span>
<span class="ruby-identifier">git_proxy</span>.<span class="ruby-identifier">copy_to</span>(<span class="ruby-identifier">install_path</span>, <span class="ruby-identifier">submodules</span>)
<span class="ruby-identifier">serialize_gemspecs_in</span>(<span class="ruby-identifier">install_path</span>)
<span class="ruby-ivar">@copied</span> = <span class="ruby-keyword">true</span>
<span class="ruby-keyword">end</span>
<span class="ruby-identifier">local_specs</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-to_lock" class="method-detail ">
<div class="method-heading">
<span class="method-name">to_lock</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="to_lock-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 38</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">to_lock</span>
<span class="ruby-identifier">out</span> = <span class="ruby-constant">String</span>.<span class="ruby-identifier">new</span>(<span class="ruby-string">"GIT\n"</span>)
<span class="ruby-identifier">out</span> <span class="ruby-operator"><<</span> <span class="ruby-node">" remote: #{@uri}\n"</span>
<span class="ruby-identifier">out</span> <span class="ruby-operator"><<</span> <span class="ruby-node">" revision: #{revision}\n"</span>
<span class="ruby-node">%w[ref branch tag submodules]</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">opt</span><span class="ruby-operator">|</span>
<span class="ruby-identifier">out</span> <span class="ruby-operator"><<</span> <span class="ruby-node">" #{opt}: #{options[opt]}\n"</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">opt</span>]
<span class="ruby-keyword">end</span>
<span class="ruby-identifier">out</span> <span class="ruby-operator"><<</span> <span class="ruby-node">" glob: #{@glob}\n"</span> <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@glob</span> <span class="ruby-operator">==</span> <span class="ruby-constant">DEFAULT_GLOB</span>
<span class="ruby-identifier">out</span> <span class="ruby-operator"><<</span> <span class="ruby-string">" specs:\n"</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-to_s" class="method-detail ">
<div class="method-heading">
<span class="method-name">to_s</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="to_s-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 62</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">to_s</span>
<span class="ruby-identifier">at</span> = <span class="ruby-keyword">if</span> <span class="ruby-identifier">local?</span>
<span class="ruby-identifier">path</span>
<span class="ruby-keyword">elsif</span> <span class="ruby-identifier">user_ref</span> = <span class="ruby-identifier">options</span>[<span class="ruby-string">"ref"</span>]
<span class="ruby-keyword">if</span> <span class="ruby-identifier">ref</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp">/\A[a-z0-9]{4,}\z/i</span>
<span class="ruby-identifier">shortref_for_display</span>(<span class="ruby-identifier">user_ref</span>)
<span class="ruby-keyword">else</span>
<span class="ruby-identifier">user_ref</span>
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">else</span>
<span class="ruby-identifier">ref</span>
<span class="ruby-keyword">end</span>
<span class="ruby-identifier">rev</span> = <span class="ruby-keyword">begin</span>
<span class="ruby-node">"@#{shortref_for_display(revision)}"</span>
<span class="ruby-keyword">rescue</span> <span class="ruby-constant">GitError</span>
<span class="ruby-keyword">nil</span>
<span class="ruby-keyword">end</span>
<span class="ruby-node">"#{@safe_uri} (at #{at}#{rev})"</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-unlock-21" class="method-detail ">
<div class="method-heading">
<span class="method-name">unlock!</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="unlock-21-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 111</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">unlock!</span>
<span class="ruby-identifier">git_proxy</span>.<span class="ruby-identifier">revision</span> = <span class="ruby-keyword">nil</span>
<span class="ruby-identifier">options</span>[<span class="ruby-string">"revision"</span>] = <span class="ruby-keyword">nil</span>
<span class="ruby-ivar">@unlocked</span> = <span class="ruby-keyword">true</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
</section>
<section id="private-instance-5Buntitled-5D-method-details" class="method-section">
<header>
<h3>Private Instance Methods</h3>
</header>
<div id="method-i-base_name" class="method-detail ">
<div class="method-heading">
<span class="method-name">base_name</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="base_name-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 271</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">base_name</span>
<span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-regexp">%r{^(\w+://)?([^/:]+:)?(//\w*/)?(\w*/)*}</span>, <span class="ruby-string">""</span>), <span class="ruby-string">".git"</span>)
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-cached-3F" class="method-detail ">
<div class="method-heading">
<span class="method-name">cached?</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="cached-3F-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 299</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">cached?</span>
<span class="ruby-identifier">cache_path</span>.<span class="ruby-identifier">exist?</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-cached_revision" class="method-detail ">
<div class="method-heading">
<span class="method-name">cached_revision</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="cached_revision-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 295</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">cached_revision</span>
<span class="ruby-identifier">options</span>[<span class="ruby-string">"revision"</span>]
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-cached_revision_checked_out-3F" class="method-detail ">
<div class="method-heading">
<span class="method-name">cached_revision_checked_out?</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="cached_revision_checked_out-3F-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 267</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">cached_revision_checked_out?</span>
<span class="ruby-identifier">cached_revision</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">cached_revision</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">revision</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">install_path</span>.<span class="ruby-identifier">exist?</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-extension_cache_slug" class="method-detail ">
<div class="method-heading">
<span class="method-name">extension_cache_slug</span><span
class="method-args">(_)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="extension_cache_slug-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 327</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">extension_cache_slug</span>(<span class="ruby-identifier">_</span>)
<span class="ruby-identifier">extension_dir_name</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-fetch" class="method-detail ">
<div class="method-heading">
<span class="method-name">fetch</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="fetch-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 307</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">fetch</span>
<span class="ruby-identifier">git_proxy</span>.<span class="ruby-identifier">checkout</span>
<span class="ruby-keyword">rescue</span> <span class="ruby-constant">GitError</span> <span class="ruby-operator">=></span> <span class="ruby-identifier">e</span>
<span class="ruby-identifier">raise</span> <span class="ruby-keyword">unless</span> <span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">feature_flag</span>.<span class="ruby-identifier">allow_offline_install?</span>
<span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">ui</span>.<span class="ruby-identifier">warn</span> <span class="ruby-node">"Using cached git data because of network errors:\n#{e}"</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-git_proxy" class="method-detail ">
<div class="method-heading">
<span class="method-name">git_proxy</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="git_proxy-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 303</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">git_proxy</span>
<span class="ruby-ivar">@git_proxy</span> <span class="ruby-operator">||=</span> <span class="ruby-constant">GitProxy</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">cache_path</span>, <span class="ruby-identifier">uri</span>, <span class="ruby-identifier">ref</span>, <span class="ruby-identifier">cached_revision</span>, <span class="ruby-keyword">self</span>)
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-git_scope" class="method-detail ">
<div class="method-heading">
<span class="method-name">git_scope</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="git_scope-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 323</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">git_scope</span>
<span class="ruby-node">"#{base_name}-#{uri_hash}"</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-has_app_cache-3F" class="method-detail ">
<div class="method-heading">
<span class="method-name">has_app_cache?</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-calls-super">
Calls superclass method
</div>
<div class="method-source-code" id="has_app_cache-3F-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 255</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">has_app_cache?</span>
<span class="ruby-identifier">cached_revision</span> <span class="ruby-operator">&&</span> <span class="ruby-keyword">super</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-load_gemspec" class="method-detail ">
<div class="method-heading">
<span class="method-name">load_gemspec</span><span
class="method-args">(file)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="load_gemspec-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 317</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">load_gemspec</span>(<span class="ruby-identifier">file</span>)
<span class="ruby-identifier">stub</span> = <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">StubSpecification</span>.<span class="ruby-identifier">gemspec_stub</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">install_path</span>.<span class="ruby-identifier">parent</span>, <span class="ruby-identifier">install_path</span>.<span class="ruby-identifier">parent</span>)
<span class="ruby-identifier">stub</span>.<span class="ruby-identifier">full_gem_path</span> = <span class="ruby-constant">Pathname</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">file</span>).<span class="ruby-identifier">dirname</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-identifier">root</span>).<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">tap</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-identifier">x</span>.<span class="ruby-identifier">untaint</span> <span class="ruby-keyword">if</span> <span class="ruby-constant">RUBY_VERSION</span> <span class="ruby-operator"><</span> <span class="ruby-string">"2.7"</span> }
<span class="ruby-constant">StubSpecification</span>.<span class="ruby-identifier">from_stub</span>(<span class="ruby-identifier">stub</span>)
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-local-3F" class="method-detail ">
<div class="method-heading">
<span class="method-name">local?</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="local-3F-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 259</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">local?</span>
<span class="ruby-ivar">@local</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-override_for" class="method-detail ">
<div class="method-heading">
<span class="method-name">override_for</span><span
class="method-args">(path)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="override_for-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 331</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">override_for</span>(<span class="ruby-identifier">path</span>)
<span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">settings</span>.<span class="ruby-identifier">local_overrides</span>.<span class="ruby-identifier">key</span>(<span class="ruby-identifier">path</span>)
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-requires_checkout-3F" class="method-detail ">
<div class="method-heading">
<span class="method-name">requires_checkout?</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="requires_checkout-3F-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 263</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">requires_checkout?</span>
<span class="ruby-identifier">allow_git_ops?</span> <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span><span class="ruby-identifier">local?</span> <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span><span class="ruby-identifier">cached_revision_checked_out?</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-serialize_gemspecs_in" class="method-detail ">
<div class="method-heading">
<span class="method-name">serialize_gemspecs_in</span><span
class="method-args">(destination)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="serialize_gemspecs_in-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 235</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">serialize_gemspecs_in</span>(<span class="ruby-identifier">destination</span>)
<span class="ruby-identifier">destination</span> = <span class="ruby-identifier">destination</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">root</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">destination</span>.<span class="ruby-identifier">relative?</span>
<span class="ruby-constant">Dir</span>[<span class="ruby-node">"#{destination}/#{@glob}"</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">spec_path</span><span class="ruby-operator">|</span>
<span class="ruby-comment"># Evaluate gemspecs and cache the result. Gemspecs</span>
<span class="ruby-comment"># in git might require git or other dependencies.</span>
<span class="ruby-comment"># The gemspecs we cache should already be evaluated.</span>
<span class="ruby-identifier">spec</span> = <span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">load_gemspec</span>(<span class="ruby-identifier">spec_path</span>)
<span class="ruby-keyword">next</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">spec</span>
<span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">rubygems</span>.<span class="ruby-identifier">set_installed_by_version</span>(<span class="ruby-identifier">spec</span>)
<span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">rubygems</span>.<span class="ruby-identifier">validate</span>(<span class="ruby-identifier">spec</span>)
<span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">spec_path</span>, <span class="ruby-string">"wb"</span>) {<span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span> <span class="ruby-identifier">file</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">spec</span>.<span class="ruby-identifier">to_ruby</span>) }
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-set_local-21" class="method-detail ">
<div class="method-heading">
<span class="method-name">set_local!</span><span
class="method-args">(path)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="set_local-21-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 249</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">set_local!</span>(<span class="ruby-identifier">path</span>)
<span class="ruby-ivar">@local</span> = <span class="ruby-keyword">true</span>
<span class="ruby-ivar">@local_specs</span> = <span class="ruby-ivar">@git_proxy</span> = <span class="ruby-keyword">nil</span>
<span class="ruby-ivar">@cache_path</span> = <span class="ruby-ivar">@install_path</span> = <span class="ruby-identifier">path</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-shortref_for_display" class="method-detail ">
<div class="method-heading">
<span class="method-name">shortref_for_display</span><span
class="method-args">(ref)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="shortref_for_display-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 275</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">shortref_for_display</span>(<span class="ruby-identifier">ref</span>)
<span class="ruby-identifier">ref</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">6</span>]
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-shortref_for_path" class="method-detail ">
<div class="method-heading">
<span class="method-name">shortref_for_path</span><span
class="method-args">(ref)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="shortref_for_path-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 279</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">shortref_for_path</span>(<span class="ruby-identifier">ref</span>)
<span class="ruby-identifier">ref</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">11</span>]
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-uri_hash" class="method-detail ">
<div class="method-heading">
<span class="method-name">uri_hash</span><span
class="method-args">()</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<div class="method-source-code" id="uri_hash-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 283</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">uri_hash</span>
<span class="ruby-keyword">if</span> <span class="ruby-identifier">uri</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp">%r{^\w+://(\w+@)?}</span>
<span class="ruby-comment"># Downcase the domain component of the URI</span>
<span class="ruby-comment"># and strip off a trailing slash, if one is present</span>
<span class="ruby-identifier">input</span> = <span class="ruby-constant">Bundler</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">uri</span>).<span class="ruby-identifier">normalize</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-regexp">%r{/$}</span>, <span class="ruby-string">""</span>)
<span class="ruby-keyword">else</span>
<span class="ruby-comment"># If there is no URI scheme, assume it is an ssh/git URI</span>
<span class="ruby-identifier">input</span> = <span class="ruby-identifier">uri</span>
<span class="ruby-keyword">end</span>
<span class="ruby-constant">SharedHelpers</span>.<span class="ruby-identifier">digest</span>(<span class="ruby-value">:SHA1</span>).<span class="ruby-identifier">hexdigest</span>(<span class="ruby-identifier">input</span>)
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div id="method-i-validate_spec" class="method-detail ">
<div class="method-heading">
<span class="method-name">validate_spec</span><span
class="method-args">(_spec)</span>
<span class="method-click-advice">click to toggle source</span>
</div>
<div class="method-description">
<p>no-op, since we validate when re-serializing the gemspec</p>
<div class="method-source-code" id="validate_spec-source">
<pre><span class="ruby-comment"># File lib/bundler/source/git.rb, line 315</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">validate_spec</span>(<span class="ruby-identifier">_spec</span>); <span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
</section>
</section>
</main>
<footer id="validator-badges" role="contentinfo">
<p><a href="https://validator.w3.org/check/referer">Validate</a>
<p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.2.1.1.
<p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
</footer>